#pragma once
#include <windows.h>
typedef enum _tagVariantType
{
	T_BOOL,
	T_INT,
	T_DOUBLE
}VariantType;

class Variant
{
private:
	VariantType _type;
	union _tagValue
	{
		bool b;
		int n;
		double d;

		_tagValue()
		{
			memset(&b,0,sizeof _tagValue);
		}
	}_value;
public:
	Variant();
	Variant(const Variant&);
	Variant(const bool&);
	Variant(const int&);
	Variant(const double&);
	~Variant(void);

	Variant& operator=(const Variant&);
	Variant& operator=(const bool&);
	Variant& operator=(const int&);
	Variant& operator=(const double&);

	bool operator==(Variant&);
	bool operator!=(Variant&);

	operator bool();
	operator int();
	operator double();
};